Moving the CIM to HollowWorld and FullMoon
The process of moving the CIM to a UML profile that can be automatically processed by fullmoon throws up some issues for consideration which are recorded here. This migration process has begun in the dev1.6 branch with the migration of the Quality schema, and by necessity some elements of the Shared schema.
Notes
(some of these notes may turn into tickets but for now they are just notes...)
- Created a UML Profile for CIM with a Document stereotype that can be used in UML.
- The Document stereotype is currently ignored by Fullmoon - to capture the relationship inheritance must still be used in UML - so CIM_Quality specialises the Document class. Anything else requires modifications to Fullmoon (the scope of which I haven't understood yet).
- Created a CIM Classmap to configure Fullmoon where needed.
- DocumentID - how to constrain this to a GUID as before using Fullmoon? Currently modelled as a character string.
- DocumentVersion - again, modelled as a CharacterString
- I wanted to remove the circular import dependency between the shared and document schemas - current (1.5) Document has a quality attribute of type CIM_Quality. Suggest changing type of quality attribute to DQ_Element, then specialised document types can restrict this type to CIM_Quality (which anyway extends DQ_Element).
- Need to address how to handle Codelists - taking into account latest approach in metafor. Currently they are encoded in the XSD (temporarily).
- Some of the import statements are not yet appearing in the output xml schemas generated by fullmoon. Need to work out why not.
