Når et Rational Rose-klassediagram bruges som kilde til generering af en EMF-model, er der nogle oplysninger om hver pakke, som ikke er udtrykt i UML'en, hvorved generatoren tvinges til at udlede dem af pakkenavnet. Det anbefales, at de i stedet lagres direkte i Rose-modellen som modelegenskaber.
Vi vil vise, hvordan det gøres, ved at bruge en let modificeret udgave af modellen library fra øveprogrammet Generér en EMF-model: library.mdl.
Modelelementerne skal tilhøre en pakke. Når modellen konverteres til Ecore, og der er elementer, som ikke er indeholdt i en pakke, oprettes en pakke til dem, og dens egenskaber udledes af navnet på modellen.
Ecores yderligere egenskaber for Rose-modeller er defineret i en egenskabsfil, "ecore.pty". Før vi kan angive dem, skal vi tilføje dem til Roses ordforråd.
Egenskaberne for Ecore-pakken kan nu redigeres.
De egenskaber, der kan angives, kan inddeles i to grupper: egenskaber for selve Ecore-modellen og egenskaber for den GenModel, der styrer kodegenereringen.
Der er følgende Ecore-egenskaber:
packageName Navnet på Ecore-pakken, hvis det afviger fra Rose/UML-navnet. Hvis det ikke angives, bruges Rose-pakkenavnet konverteret til små bogstaver. nsPrefix Navneområdepræfikset for pakkens XML-navneområde, som bruges i et fuldstændigt navn til at vælge pakkens navneområde. Hvis det ikke angives, bruges værdien af packageName kvalificeret med basePackage nedenfor. nsURI Den entydige URI-reference, der identificerer pakkens XML-navneområde. Hvis den ikke angives, bruges værdien af nsPrefix med "http:///" foran værdien, ".ecore" efter værdien og "/" konverteret til ".". annotation Eventuelle annotationer, der skal tilknyttes pakken. Annotationer er en fleksibel mekanisme til tilknytning af yderligere oplysninger til Ecore-modelelementer. En annotation identificeres af en kilde, en entydig streng, der typisk er en URI, og inkluderer parvise nøgle/værdistrenge med detaljer. Den angives sådan:
http://www.example.org/kildeURI nøgle1='værdi1' nøgle2='værdi2'...
Der er følgende GenModel-egenskaber:
prefix Det præfiks, der bruges i navnene på genererede pakke-, fabriks-, switch-, adapterfabrik- og andre klasser til denne pakke. Hvis det ikke angives, bruges værdien af packageName med stort begyndelsesbogstav. basePackage Den Java-pakke, som den genererede pakke skal være en underpakke af. Det gør det let at generere kode med globalt entydige pakkenavne (uden at modellere tomme, indlejrede basispakker). Der benyttes ikke nogen standardværdi, hvis egenskaben ikke angives.
Ud over disse pakkeegenskaber defineres i Ecore-egenskabsfilen egenskaber for klasser, attributter, relationer og funktioner. De findes alle på skillebladet Ecore i deres respektive Specification-dialogboks.