I need to create an MDL file format converter (UML Rathional Rose diagrams) into a file of a specific structure. In my case, this is EKB (the structure description will be presented below). I tried to find an MDL file structure on the Internet, but I did not find anything sensible. Actually, I have two questions. What does the structure of the MDL file look like and where to start developing the converter, for I have little idea how to convert one structure to another.
EKB structure:
<Structure> <KnowledgeBase> <Name></Name> <ShortName></ShortName> <Kind></Kind> <Description></Description> <Vars></Vars> <Templates> //ΡΠΏΠΈΡΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² <Template> <ID></ID> //Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ <Name></Name> //ΠΈΠΌΡ Π½Π° ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΠ΅ <ShortName></ShortName> //ΠΈΠΌΡ Π½Π° Π»Π°ΡΠΈΠ½ΠΈΡΠ΅ <Description></Description> //ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ <PackageName></PackageName> <RootPackageName></RootPackageName> <Slots> //ΡΠΏΠΈΡΠΎΠΊ ΡΠ»ΠΎΡΠΎΠ² <Slot> //ΡΠ»ΠΎΡ <Name></Name> <ShortName></ShortName> <Description></Description> <Value></Value> //Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΡΠ° <DataType></DataType> //ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
ΡΠ»ΠΎΡΠ° <Constraint></Constraint> //ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (=,>,<) </Slot> </Slots> </Template> </Templates> <Facts> //ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΊΡΠΎΠ² <Fact> //ΡΠ°ΠΊΡ <ID></ID> <Name></Name> <ShortName></ShortName> <Mode></Mode> <PackageName></PackageName> <RootPackageName></RootPackageName> <Slots> <Slot> <Name></Name> <ShortName></ShortName> <Description></Description> <Value></Value> <DataType></DataType> <Constraint></Constraint> </Slot> </Slots> </Fact> </Facts> <GRules></GRules> <Rules> //ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ» <Rule> //ΠΏΡΠ°Π²ΠΈΠ»ΠΎ <ID></ID> <Name></Name> <ShortName></ShortName> <Description></Description> <Salience></Salience> //Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° <PackageName></PackageName> <RootPackageName></RootPackageName> <Conditions> //ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ»ΠΎΠ²ΠΈΠΉ <Condition> //ΡΡΠ»ΠΎΠ²ΠΈΠ΅ <Name></Name> <Operator></Operator> //ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ β and, or, not <Fact> <ID></ID> <Name></Name> <ShortName></ShortName> <Mode></Mode> <PackageName></PackageName> <RootPackageName></RootPackageName> <Slots> <Slot> <Name></Name> <ShortName></ShortName> <Description></Description> <Value></Value> <DataType></DataType> <Constraint></Constraint> </Slot> </Slots> </Fact> </Condition> </Conditions> <Actions> //ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ <Action> //Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ <Name></Name> <Operator></Operator> //ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ β add, rem <Fact> <ID></ID> <Name></Name> <ShortName></ShortName> <Mode></Mode> <PackageName></PackageName> <RootPackageName></RootPackageName> <Slots> <Slot> <Name></Name> <ShortName></ShortName> <Description></Description> <Value></Value> <DataType></DataType> <Constraint></Constraint> </Slot> </Slots> </Fact> </Action> </Actions> </Rule> </Rules> <Functions></Functions> <Tasks></Tasks> <TempPackageList></TempPackageList> <FactPackageList></FactPackageList> <RulePackageList></RulePackageList> <GRulePackageList></GRulePackageList> </KnowledgeBase> </Structure>