Generování modelu EMF pomocí schématu XML (XSD)

Poslední aktualizace: 29. červen 2004

Tento výukový program poskytuje postupný popis pro vytváření modelu EMF ze schématu XML a vytváření jednoduchého editoru modelů. Při procházení tohoto výukového programu zjistíte, jak jednoduše umožňuje EMF přechod od definice jednoduchého modelu ve schématu XML k plně funkčnímu editoru pro tento model.

Screenshoty jsou založeny na Eclipse SDK verze 3.0 a EMF verze 2.0.

Soubor schématu XML používaný v tomto výukovém programu se nachází zde: library.xsd. Uložte jej někam na vaši pracovní stanici pro pozdější použití.

Základní pravidla mapování ze schématu XML na Ecore jsou:

Z perspektivy modelování není schéma XML stejně expresivní jako Ecore. Nemůže ani specifikovat typ cíle odkazu, ani definovat obousměrné odkazy (ačkoli EMF poskytuje svůj vlastní způsob překročení těchto omezení).


Obsah

Krok 0: Vstupní specifikace
Krok 1: Import modelu ze schématu XML
Krok 2: Generovat kód modelu EMF
Krok 3: Vygenerovat editor pro model
Krok 4: Spustit vygenerovaný editor


 obsah

Krok 0: Vstupní specifikace

Tento výukový program vyžaduje jak balíček EMF Runtime, který obsahuje generátor EMF a související moduly plug-in, tak balíček XML Schema Infoset Model (XSD) Runtime. Druhý z uvedených balíčků poskytuje model EMF schématu XML, na který se EMF spoléhá při čtení schémat. Pro jednoduchost je k dispozici kombinovaný balíček EMF a XSD SDK. Po instalaci balíčku(ů) ověřte, zda jsou balíčky k dispozici ve vašem prostředí Eclipse:

Další moduly plug-in EMF a XSD, které nejsou zvýrazněny výše, nejsou pro tento výukový program vyžadovány. Mohou a nemusí se objevit, podle toho, které balíčky jste nainstalovali.


 obsah

Krok 1: Importovat model ze schématu XML

Vytvořte nový projekt EMF v pracovním prostoru:


 obsah

Krok 2: Generovat kód modelu EMF

Model generátoru zobrazuje kořenový objekt, představující celý model. Tento Import má podřízené prvky, které představují jeho balíčky, jejichž podřízené prvky dále představují klasifikátory (třídy a datové typy, včetně ve výčtu uvedených typů). Podřízené prvky tříd jsou atributy tříd, odkazy a operace, podřízené prvky ve výčtu uvedených typů jsou výčtové literály.

Ve většině případů není nutno měnit výchozí hodnoty vlastností, avšak tyto volby mohou poskytovat velký podíl na řízení kódu, který je generován. Nyní vyberte několik různých modelových objektů generátoru a sledujte jejich vlastnosti.

Model generátoru je také místo, ve kterém budete zahajovat generování kódu. Klepnutím pravým tlačítkem myši na objekt v modelu je možno vygenerovat kód pro tento objekt.

Po vygenerování budou vytvořena rozhraní tříd a třída výčtu a bude vytvořena nová dvojice rozhraní pro samotný balíček a pro továrnu. Přibudou také dva nové balíčky s příponami "impl" a "util", které obsahují implementace rozhraní a další obslužné třídy a soubor s manifestem "plugin.xml" pro modul plug-in modelu.

Změněný model je možno regenerovat a změny budou sloučeny s jakýmikoli ručně provedenými úpravami, které jste u kódu provedli. Je možno také selektivně vygenerovat podmnožinu kódu modelu tak, že klepnete pravým tlačítkem myši na balíček, třídu, nebo objekt výčtu a vyberete volbu "Generovat kód modelu" z rozevírací nabídky.


 obsah

Krok 3: Vygenerujte editor pro model

Pro kterýkoli model je možno vygenerovat plně funkční editor Eclipse. Ve výchozím nastavení je rozdělen mezi dva moduly plug-in: modul plug-in pro úpravy obsahuje adaptéry poskytující strukturovaný pohled a provádějící příkazovou úpravu modelových objektů, modul plug-in "editor" poskytuje uživatelské rozhraní pro editor a průvodce.

Obecně platí, že pokud si přejete vygenerovat moduly plug-in modelu, editace a editoru v rámci jednoho kroku, můžete to provést pomocí volby "Vygenerovat vše" v rozevírací nabídce.

Kód by se měl zkompilovat automaticky při svém vygenerování a při každé změně by se měl zkompilovat znovu. Pokud vypnete volbu automatického sestavování v předvolbách pracovní plochy, máte možnost kompilaci zahájit ručně:


 obsah

Krok 4: Spustit vygenerovaný editor

Pro otestování nových modulů plug-in musí být spuštěna druhá instance Eclipse s názvem Běhová pracovní plocha. Moduly plug-in poběží na této pracovní ploše.

Nyní je možno použít průvodce modelu Knihovna pro vytvoření nové instance modelu.

Kořenový objekt v tomto editoru odpovídá prostředku My.library. Pod ním leží jednoduchá knihovna, objekt vybraný jako modelový objekt v průvodci.


obsah