vidmoten.miuml-jaxb.0.3.1.source-code.miuml-metamodel.xsd Maven / Gradle / Ivy
Show all versions of miuml-jaxb Show documentation
This schema describes the information of a miUML model in xml
form. The schema is created directly from the miUML class
diagrams
available at http://www.miUML.org.
The same terminology is used and the superclass
heirarchies are
being implemented where possible.
To reduce verbosity in xml compliant with the schema attributes
are preferred over elements when convenient.
Every relationship on the class diagrams should eventually appear
in this document in the documentation annotations on types or
elements.
Some classes and relationships from the metamodel may add no data
to this schema. There existence may be purely to represent
uniqueness constraints on the data which is outside the scope of
the schema. The miUML approach is to provide a program/service to
perform this sort of validation. All relationships that are
identified as not being required in the schema should eventually be
mentioned in documentation annotations so that it is clear they
have been considered.
Subsystems to be considered by this schema include:
- Domain Subsystem
- Class and Attribute Subsystem
- Relationship Subsystem
- State Subsystem
- Polymorphism Subsystem
- Formalization Subsystem
- Type Subsystem
- Required Referential Identifier Subsystem
Used to configure defaults for creating new domains.
R708 CommonType
R7. The enclosing domain is the Client domain
Extension point for miuml tools
When this attribute is missing the alias should be
assumed to be the same as the Name field.
R4
R708 DomainType
R1
R17
R4
R7c
R13
When this attribute is missing the alias should be
assumed to be the same as the Name field.
R3
R3
Number has been made optional because it is not
required to uniquely refer to an Element within a Domain in the
schema.
R16. Only ConstrainedLoop is modeled as a
specialization of SpanningElement. Xsd does not support multiple
inheritance so DomainType is modeled via an optional Element
attribute on ConstrainedType. Lineage is used only for validation
thus does not appear in this schema.
R16
R17
Note that as per the miuml metamodel documentation
(Relationship Subsystem Class Diagram Notes) the order of the
relationships listed below is not important. It is a set of
relationships.
R160
R14. R160 is for uniqueness purposes only and so is
not in the schema.
R23 to SpecializedClass and NonSpecializedClass has
been collapsed into
Class because this distinction is captured by
GeneralizationReferences/SpecializationReferences on the attributes
of the class.
R14
R20
R500
Extension point for miuml tools
Schema xml consumers (model
compilers/viewers/editors/validators/documenters) will not always
require this field
so it can be omitted.
Schema xml consumers (model
compilers/viewers/editors/validators/documenters) will not always
require this field and if they do the value should be considered
to default to the Name attribute.
R22
Extension point for miuml tools
R21
R24
R21
R31
R25
R26 has not been represented in the schema because
it's use depends on a formula language for derived attributes.
Such
a language has not yet been defined in miUML (April 18 2012).
R25
R30
R30
R100. R103,R102,R118,R117 add uniqueness constraints
only and thus do not appear in this schema.
R101, minOccurs=2 represents the relationships
R116,R117,R118 (Minimal Partition)
R103
R100
R119, R120
R119
R123
R119
R124
R125
Removed Side attribute because some subclasses do not
required it, e.g. ActivePerspective and PassivePerspective
R110
Represents the R104 specialization group because
schema does not support multiple inheritance.
R121
R121
R105
R105
R21,R31,R32
If this attribute is not used then its value is
assumed to be the name of the enclosing attribute
making the
reference.
R120,R152. TReference and PReference via R153 have
been
collapsed into AssociativeReference. Differentiation is via the
Class attribute.
R152
This should only be required for reflexive binary
associations.
R152
R152
R714
Models R708 Domain Type + Common Type. When a type is
particular to a domain then it should have a local name property
(that may be the same name as the name which should be unique
across all domains). When this attribute is omitted the
LocalName is assumed to be the same as the Name.
The operator part of the Type subsystem is not modeled because
it will not be used till a processing language is developed. For
this reason R712,R713,R716 R718,R719,R720 have not been modeled
in this schema.
Schema does not support multiple inheritance so
R16+R17 is modelled using this optional attribute. A
ConstrainedType is only an Element if it is a DomainType. Even if
the ConstrainedType is a DomainType the element number is still
an optional attribute.
R714
R700
R717. All atomic types are based on an unconstrained
type of the same name. For example the constrained Real with
precision and upper and lower bounds is based on the mathematical
domain R of real numbers (without constraints).
R700
R703
R704
R703
R705
R706
R706
R706
R706
R706
R715
R707
R706
R510
Extension point for miuml tools
This field is optional because for many consumers
this field can be ignored or generated.
R510
R503
R565+R550+R558+R561+R560,
R565+R550+R557+R554+R560
R503+R505+R506
R502
R513
Extension point for miuml tools
R502
R507
Note that the EventID might be a
LocalEffectiveSignallingEvent on the enclosing class or it might
be the EventID of an Inherited Effective Event from a superclass.
The possibility of namespace clashes in this case forces the use
of an Event ID rather than just the event Name for unique
identification. More on event inheritance is yet to be done in
this schema.
A large portion of the Polymorphism Subsystem has been
collapsed by the relationship of Event to Event Signature. The
collapsed portion serves validation purposes only.
R563
R562
R562
Dave Moten simplified the definition of
StateModelParameter because parameter typing is intimately related
to Action Language which has not been defined for miUml yet (28 May
2012). Dave chose to do this also to enable model compilers that may
not implement a miUml Action Language but rather map state model
signatures to methods in a platform language like java in the case
of xuml-tools.
R566
R567+R554+R560
R508
R568+R554
Extension point for xuml-tools. For example
documentation against attributes, classes would be placed in an
Extension element.